package cn.com.aiton.common.model.guard;

import cn.com.aiton.common.model.BaseDomain;
import cn.com.aiton.common.model.NodeDomain;
import cn.com.aiton.common.model.OnlineNodeDomain;

public class RouteGuardSignalNodeDomain extends BaseDomain {
    //警卫任务ID
    private Long routeGuardId;
    //信号机ID
    private NodeDomain nodeDomain;
    //警卫车辆与信号机之间距离多少，会促发相位锁定。并执行警卫任务的放行
    private Double distance;
    //警卫车辆与信号机之间距离多少，会促发相位锁定。并执行警卫任务的放行
    private Double leaveDistance;
    //方向
    private Integer direction;
    //序号
    private Integer sequence;
    //离开路口后的时间，秒为单位
    private Integer leaveTime;
    //是否车队已经过路口，也便是是否已经完成使用信号机
    // 信号平台数据库中不储存此字段
    private boolean finish;
    public RouteGuardSignalNodeDomain() {
    }

    public RouteGuardSignalNodeDomain(Long routeGuardId, NodeDomain nodeDomain, Double distance, Integer direction, Integer sequence, Integer leaveTime) {
        this.routeGuardId = routeGuardId;
        this.nodeDomain = nodeDomain;
        this.distance = distance;
        this.direction = direction;
        this.sequence = sequence;
        this.leaveTime = leaveTime;
    }

    public RouteGuardSignalNodeDomain(Long routeGuardId, NodeDomain nodeDomain, Double distance, Integer direction, Integer sequence, Integer leaveTime, boolean finish) {
        this.routeGuardId = routeGuardId;
        this.nodeDomain = nodeDomain;
        this.distance = distance;
        this.direction = direction;
        this.sequence = sequence;
        this.leaveTime = leaveTime;
        this.finish = finish;
    }

    public RouteGuardSignalNodeDomain(Long routeGuardId, NodeDomain nodeDomain, Double distance, Double leaveDistance, Integer direction, Integer sequence, Integer leaveTime, boolean finish) {
        this.routeGuardId = routeGuardId;
        this.nodeDomain = nodeDomain;
        this.distance = distance;
        this.leaveDistance = leaveDistance;
        this.direction = direction;
        this.sequence = sequence;
        this.leaveTime = leaveTime;
        this.finish = finish;
    }

    @Override
    public String toString() {
        return "RouteGuardSignalNodeDomain{" +
                "routeGuardId=" + routeGuardId +
                ", nodeDomain=" + nodeDomain +
                ", distance=" + distance +
                ", leaveDistance=" + leaveDistance +
                ", direction=" + direction +
                ", sequence=" + sequence +
                ", leaveTime=" + leaveTime +
                ", finish=" + finish +
                '}';
    }

    public Double getLeaveDistance() {
        return leaveDistance;
    }

    public void setLeaveDistance(Double leaveDistance) {
        this.leaveDistance = leaveDistance;
    }

    public boolean isFinish() {
        return finish;
    }

    public void setFinish(boolean finish) {
        this.finish = finish;
    }

    public NodeDomain getNodeDomain() {
        return nodeDomain;
    }

    public void setNodeDomain(NodeDomain nodeDomain) {
        this.nodeDomain = nodeDomain;
    }

    public Integer getSequence() {
        return sequence;
    }

    public void setSequence(Integer sequence) {
        this.sequence = sequence;
    }


    public Integer getLeaveTime() {
        return leaveTime;
    }

    public void setLeaveTime(Integer leaveTime) {
        this.leaveTime = leaveTime;
    }

    public Long getRouteGuardId() {
        return routeGuardId;
    }

    public void setRouteGuardId(Long routeGuardId) {
        this.routeGuardId = routeGuardId;
    }


    public Double getDistance() {
        return distance;
    }

    public void setDistance(Double distance) {
        this.distance = distance;
    }

    public Integer getDirection() {
        return direction;
    }

    public void setDirection(Integer direction) {
        this.direction = direction;
    }
}
